1. Technical Field
This application relates to managing storage operations in a server cache.
2. Description of Related Art
Storing and safeguarding electronic data is of paramount importance in modern business. Accordingly, various systems may be employed to protect such electronic data.
Storage devices are employed to store data that is accessed by computer systems. Examples of basic storage devices include volatile and non-volatile memory, floppy drives, hard disk drives, tape drives, optical drives, etc. A storage device may be locally attached to an input/output channel of a computer. For example, a hard disk drive may be connected to a computer's disk controller.
As is known in the art, a disk drive contains at least one magnetic disk which rotates relative to a read/write head and which stores data nonvolatilely. Data to be stored on a magnetic disk is generally divided into a plurality of equal length data sectors. A typical data sector, for example, may contain 512 bytes of data. A disk drive is capable of performing a write operation and a read operation. During a write operation, the disk drive receives data from a host computer along with instructions to store the data to a specific location, or set of locations, on the magnetic disk. The disk drive then moves the read/write head to that location, or set of locations, and writes the received data. During a read operation, the disk drive receives instructions from a host computer to access data stored at a specific location, or set of locations, and to transfer that data to the host computer. The disk drive then moves the read/write head to that location, or set of locations, senses the data stored there, and transfers that data to the host.
The use of solid-state storage devices is increasing in popularity. A solid state storage device is a data storage device that uses solid-state memory to store persistent data. A solid-state storage device may emulate (and therefore replace) a conventional hard disk drive. Alternatively, or in addition, a solid state storage device may be used within a cache memory system. With no moving parts, a solid-state storage device largely eliminates (or greatly reduces) seek time, latency and other electromechanical delays and failures associated with a conventional hard disk drive.
A storage device may also be accessible over a network. Examples of such a storage device include network attached storage (NAS) and storage area network (SAN) devices. A storage device may be a single stand-alone component or be comprised of a system of storage devices such as in the case of Redundant Array of Inexpensive Disks (RAID) groups.
Storage elements in a SAN may be physical disks assembled into data storage system (herein also referred to as a “disk storage array”, “disk array”, “storage array” or simply “array”) and may be configured to distribute data across multiple storage devices. A data storage system (DSS) may further be equipped with a persistent cache, which can treat a write operation as being completed when the data associated with the write operation (intended to be written to the DSS) has been written to the cache. The persistent cache may then independently flush the write operation to the DSS. By reducing the latency of the write operation at the DSS, the persistent cache may provide for increased overall performance (i.e., data throughput).
Caches may additionally be installed at multiple points in the storage environment between an application issuing input/output (I/O) operations and the target physical storage arrays. For example, a server/host (server and host may be used interchangeably herein) that includes application(s) issuing read/write commands may also include a server/host cache that can be configured to cache corresponding data.